﻿using OpenCvSharp;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Drawing;
using static OpenCvSharp.Stitcher;

namespace VIA.Integration.LeadShine
{
    public class LeadShineException : Exception
    {
        public LeadShineException(string message, short code) : base(message + $":[{code}]" + GetErrorString(code))
        {

        }
        public static string GetErrorString(short code) => code switch
        {
            #region MyRegion
            -2 => "安全条件限制不能操作",
            -1 => "内部的一些空指针返回值",
            2 => "动态库层参数错误",
            3 => "PCI通讯超时",
            4 => "检测到轴处于运动中",
            6 => "连续插补错误",
            8 => "无法连接错误",
            9 => "卡号错误",
            10 => "发送数据失败,请检查PCI槽位是否松动",
            12 => "固件文件错误",
            14 => "下载固件与控制卡/器型号不匹配",
            17 => "不支持的功能，预留，不能更改",
            19 => "链接对应型号类型不匹配",
            20 => "固件参数错误",
            22 => "固件当前状态不允许操作",
            24 => "固件不支持功能，保留原版本的错误码",
            25 => "密码错误",
            26 => "密码错误输入次数受限",

            1000 => " 设置的轴号超出最大轴数或伺服轴数允许范围",
            1001 => " 该轴已经被其它运动占用，不支持对该轴进行操作",
            1002 => " 不支持该操作，轴或坐标系处于运动中，或轴 CHECK_DOWN 未完成",
            1003 => " 不支持该操作，轴或坐标系处于运动或暂停中",
            1004 => " 轴映射列表为空",
            1005 => " 设置脉冲计数值和编码器反馈值之间差值的报警阀值为 0",
            1006 => " 设置编码器和指令位置跟踪误差使能信号错误（使能信号不是 0 或 1）",
            1007 => " 设置编码器和指令位置跟踪误差停止模式错误（停止模式不是 0 或 1）",
            1008 => " 设置的脉冲当量小于等于 0",
            1009 => " QUEUE 队列初始化参数错误，初始化空间大小小于 0",
            1010 => " 不支持该功能",
            1011 => " SPI CRC 校验码错误",
            1012 => "总线控制卡或控制器轴未使能，先使能轴再操作",
            1013 => "轴数超出最大轴数允许范围",
            1014 => "插补系号超出范围",
            1015 => "参数超出允许范围",
            1016 => "轴设置位置值超出范围，正负 0X7FFFFFFF",
            1017 => "轴 ALM 信号有效",
            1018 => "轴 EMG 信号有效",
            1019 => "轴 DSTP 信号有效",
            1020 => "设置超时",
            1021 => "设置超时 2",
            1022 => "中断通道超限",
            1023 => "中断配置参数有误",
            1024 => "中断逻辑电平错误",
            1025 => "处于主从轴同步运动中",
            1026 => "数字为无穷大报错，请检查是否存在除零操作(分母为零)",
            1027 => "数字为无效数据，请检查是否存在零除以零(分子和分母都为零)",
            1028 => "轴运动状态异常，需清除轴异常状态再执行该操作",
            1029 => "轴运动状态异常，需清除轴异常状态再执行该操作",
            1030 => "急停保护状态，不允许操作轴运动和 IO 输出",
            1100 => "设置轴的目标位置大于轴软件正限位位置",
            1101 => "设置轴的目标位置小于轴软件负限位位置",
            1102 => "软件负限位位置大于或等于正限位位置，不允许使能限位功能",
            1103 => "圆弧区域限位",
            1104 => "区域限位半径为 0",
            1105 => "设置的限位维数大于 2 维",
            1106 => "设置的二维限位轴号相同",
            1107 => "设置的限位停止模式大于 1（取值只能 0 和 1）",
            1108 => "设置两轴碰撞检测时，两轴轴号相同",
            1110 => "设置安全区域检测，轴数错误",
            1111 => "设置安全区域检测，轴号相同",
            1112 => "设置安全区域检测，区域数量错误",
            1113 => "设置安全区域检测，轴位置区间左界和右界干涉",
            1114 => "设置安全区域检测，轴处于该区域内，禁止运动",
            1200 => "该轴已被配置为 PWM 输出轴，不允许其它操作",
            1201 => "该轴已被配置为 PWM 输出轴，1D 和 2D 比较输出使能失败，PWM 与比较输出互斥",
            1202 => "PWM 通道超限（共支持 6 通道）",
            1203 => "PWM 跟随模式超限（0~4:5 种模式）",
            1204 => "设置 PWM 占空比大于 1",
            1205 => "设置 PWM 频率超出范围",
            1206 => "PWM 通道被 PWM 跟随占用",
            1300 => "回零目标速度小于等于 0 或大于 4M 错误",
            1301 => "回零加速度小于等于 0 错误",
            1302 => "（1）回零方向与回零偏移量冲突，正向限位回零，偏移量不能为正，负向同理；（2）回零方向与当前限位状态冲突",
            1303 => "设置回零限位反找偏移值小于 0",
            1304 => "设置回零模式超范围（回零模式小于 1 或者大于 13）",
            1305 => "设置回零偏移清零模式超限（0-回零后不做任何动作，1-回零之后，清零，然后偏移，2-回零之后，偏移，清零）",
            1306 => "设置回零模式失败，由于该回零模式下变速变位置使能信号有效",
            1307 => "原点锁存回零位移为 0",
            1308 => "驱动器 ALM 信号有效，回零启动失败",
            1309 => "轴 EMG 信号有效，回零启动失败",
            1310 => "轴 DSTP 信号有效，回零起动失败",
            1311 => "正负限位都有效",
            1312 => "轴未使能",
            1313 => "轴号超出范围",
            1314 => "回零周期设置错误，内部",
            1315 => "正在回原点",
            1316 => "轴 PDO 未配置控制模式 6060，无法启动回零",
            1400 => "TRACE 功能已经开启，请停止后再开启",
            1401 => "设置采样周期等于 0",
            1402 => "设置对象数超过限制",
            1403 => "采集功能已经启动",
            1404 => "设置的采集类型不对",
            1405 => "设置的采集长度不对",
            1406 => "读取时候的存储数组为空指针",
            1407 => "采集对象为 0",
            1408 => "采集数据已经空了",
            1409 => "采集功能内存不足",
            1410 => "采集功能已经使能",
            1411 => "采集功能未启动",
            1412 => "采集的 PDO 不存在",
            1450 => "采集的 PDO 不存在",
            1451 => "采集通道超限",
            1452 => "采集大小超限",
            1453 => "采集节点数超限",
            1454 => "从站没有 PDO 数据",
            1455 => " 没有内存",
            1456 => "索引配置错误",
            1457 => "配置的索引数与索引不匹配",
            1458 => "索引中有不识别的对象",
            1459 => "从站没有配置任何的 PDO,从站不存在，2.初始化的从站信息失败",
            1460 => "配置的触发条件不存在",
            1461 => "输入的读取数据的首地址小于采集到的数据包数；2.没有成功触发采集",
            1462 => "ERR_PDO_TRACE_INPUT_NULL_POINTER = TRACR_BASE_ADDR + 62, //参数输入了空指针",
            1500 => "添加 PT 点,百分比小于 0 或大于 100",
            1501 => "添加 PT 点，添加点数超出最大允许值（1001）",
            1502 => "添加 PT 点，数据点个数超出最大允许值（1001）",
            1503 => "添加 PVT 点，添加点数超出最大允许值（5001）",
            1504 => "添加 PVT 点，数据点个数超出最大允许值（5001）",
            1505 => "启动 PVT 时，检测轴运动模式发现不是 PVT 模式，故报错",
            1506 => "PVT 或 PT 点数或轴号超出范围",
            1507 => "添加 PVT TABLE 时 BLOCKNUM 等于 0",
            1508 => "PVT START 失败",
            1509 => "驱动器 ALM 信号有效，PVT/PT 启动失败",
            1510 => "轴 EMG 信号有效，PVT/PT 启动失败",
            1511 => "PVT 运动轴数大于控制卡最大轴数，启动 PVT 失败",
            1512 => "没有数据",
            1513 => "时间为 0",
            1514 => "速度、加速度或者减速度小于等于 0",
            1515 => "速度小于 0",
            1516 => "与上一个位置一样",
            1517 => "方向改变了但是上一个位置的速度不为 0",
            1518 => "下载编号不匹配",
            1519 => "第一组数据必须为 0",
            1600 => "螺距补偿点数超出最大值（256）或小于最小值（2）",
            1601 => "螺距补偿距离小于等于 0",
            1602 => "螺距补偿轴数超出允许范围",
            1603 => "轴脉冲补偿时间小于等于 0",
            1604 => "扩展螺距补偿表失败，内存不足",
            1605 => "扩展螺距补偿表数据点数量错误",
            1606 => "扩展螺距补偿表未使能",
            1607 => "螺距补偿数据包 ID 错误",
            1608 => "数值错误",
            1700 => "如果不是主从轴关系，则不予以解除龙门关系",
            1701 => "主轴已经作为从轴使用,配置龙门主从轴关系失败",
            1702 => "从轴已经作为主轴使用,配置龙门主从轴关系失败",
            1703 => "从轴已经作为从轴使用,配置龙门主从轴关系失败",
            1704 => "龙门超差保护设置减速停止误差大于等于急停误差错误",
            1705 => "获取指定从轴的主轴号失败，两轴不存在主从关系",
            1706 => "该轴为龙门主轴，不允许操作，请解除龙门关系后再操作",
            1707 => "主轴和从轴编码器计数模式不一致",
            1708 => "轴未使能",
            1709 => "没有进入龙门模式",
            1710 => "主轴超出范围",
            1711 => "从轴超出范围",
            1712 => "退出 GANTRY 模式, FOLLOW 模式，必须在主轴停止状态",
            1713 => "主轴在运动中不允许退出龙门",
            1714 => "从轴 ALM 信号有效",
            1715 => "从轴 EMG 信号有效",
            1716 => "从轴 DSTP 信号有效",
            1800 => "IO 映射轴参数或 IO 类型错误",
            1801 => "IO 输入输出口超出最大允许值（16）或映射轴号超出范围",
            1802 => "设置 IO 口状态值失败，已配置为一维高速比较输出,不允许对 IO 口进行操作，比较输出和普通 IO 设置操作互斥",
            1803 => "设置 IO 口状态值失败，已配置为二维高速比较输出，不允许对 IO 口进行操作，比较输出和普通 IO 设置操作互斥",
            1804 => "设置 IO 口状态值失败，已配置为一维低速比较输出，不允许对 IO 口进行操作，比较输出和普通 IO 设置操作互斥",
            1805 => "设置 IO 口状态值失败，已配置为锁存输出，不允许对 IO 口进行操作，锁存输出和普通 IO 设置操作互斥",
            1806 => "获取 IO 值失败，IO 端口号超出有效范围（大于 801+16*8）",
            1807 => "设置全部输出口电平形参 PORTNO 错误（固定值为 0）",
            1808 => "设置 IO 延时输出翻转 IO 端口超出范围（大于 32 且小于 80）",
            1809 => "设置或读取轴 IO 映射轴号超出范围（大于最大轴数且不等于 15）",
            1810 => "配置或读取通用输入为轴的限位信号，输入端口超出范围（0~15）",
            1811 => "设置 IO 计数值，输入端口号超限（0~15）",
            1812 => "IO 通道实现 MS 级别的 PWM 输出器已用完",
            1813 => "IO 通道实现 MS 级别的 PWM 输出个数为 0",
            1814 => "IO 通道实现 MS 级别的 PWM 输出个数为 0",
            1815 => "IO 延时输出通道数超出范围",
            1816 => "设置 IO 口状态值失败，已配置为二维低速比较输出，不允许对 IO 口进行操作，比较输出和普通 IO 设置操作互斥",
            1817 => "设置 IO 口状态值失败，已配置为 PWM 输出，不允许对 IO 口进行操作",
            1818 => "IO 计数通道超限",
            1819 => "IO 计数模式错误",
            1820 => "设置 IO 口状态值失败，已配置锁存输出输出，不允许对 IO 口进行操作",
            1900 => "DA 通道超出范围（只有 0 和 1 两个通道）",
            1901 => "设置 DA 跟随最大速度等于 0",
            1902 => "模拟量输入通道超限（支持 8 路模拟量输入）",
            1903 => "连续插补 DA 跟随占用不允许操作",
            1904 => "DA 超范围",
            1950 => "接收数据包长度超过 PCI 最大接收数据包长度",
            1951 => "上传文件指令 ID 不匹配",
            1952 => "上传文件类型不匹配",
            1953 => "上传文件 FLASH 地址为空",
            1954 => "无效参数 ID，不支持该功能",
            1955 => "无效指令 ID，不支持该功能",
            1956 => "下载固件文件太长",
            1957 => "轴运动中，下载固件失败",
            1958 => "下载固件文件 ID 改变",
            1959 => "下载文件块号错误",
            1960 => "文件大小不匹配",
            1961 => "CRC 不匹配",
            1962 => "应答数据包长度超出 PCI 最大应答数据包长度",
            1963 => "上传固件文件 ID 改变",
            1964 => "上传文件块号错误",
            1965 => "下载固件指令 ID 错误",
            1966 => "在线升级过程中增加 ARM 层校验卡的型号，如果型号不对，则不予升级",
            1967 => "密码 ENTER 错误",
            1968 => "密码 ENTER 次数过多",
            1969 => "密码写入拒绝",
            1970 => "需要先进行密码登入",
            1971 => "数据保存位置超限",
            1972 => "下载文件过程中不允许其他命令通讯",
            1973 => "下载文件保存失败",
            1974 => "下载文件类型不匹配",
            1975 => "下载文件名不匹配",
            1976 => "下载变量文件号超过范围",
            1977 => "下载 BASIC 文件时文件还在运行中",
            1978 => "上传固件文件太长",
            1979 => "不支持上传文件",
            1980 => "下载文件名不匹配",
            1981 => "上传文件名不存在",
            1982 => "文件名错误",
            1983 => "文件太长",
            1984 => "预读取的字符长度不够",
            1985 => "下载文件不匹配，有可能是文件号和文件内容不匹配",
            2000 => "添加比较点功能参数和功能编号不匹配(或某值超出范围)",
            2001 => "比较缓冲区已满（256）",
            2002 => "比较点功能参数超出范围（0~15）",
            2003 => "比较组超出范围（最多 12 组：0~11）",
            2004 => "高速一维比较通道超出范围（4 通道：0~3）",
            2005 => "高速一维比较未使能，操作失败",
            2006 => "批量高速一维比较缓冲区满",
            2007 => "一维高速比较使能失败，已被配置为二维比较输出，1D 和 2D 互斥",
            2008 => "已经被配置为比较输出，PWM 使能失败，CMP 与 PWM 互斥",
            2009 => "比较通道超限或者轴数超限",
            2010 => "设置或读取一维比较参数配置，轴号超过最大值且不等于 255",
            2011 => "批量添加缓存比较点数大于 100",
            2012 => "高速比较缓冲区模式参数错误",
            2013 => "高速比较缓冲区模式方向参数错误",
            2014 => "高速比较时间参数设置错误",
            2015 => "高速一维比较器未使能",
            2016 => "一维比较器未使能",
            2017 => "一维比较输出口超出范围",
            2018 => "高速一维比较缓冲区已满",
            2100 => "比较组超出范围（最多 1：取值 0）",
            2101 => "二维高速比较使能失败，已被配置为一维比较输出，1D 和 2D 互斥",
            2102 => "高速二维比较配置 PWM 输出通道超限（大于等于 1 或小于 0）",
            2103 => "高速二维比较使能 PWM 输出信号有误（ENABLE>1）",
            2104 => "高速二维比较输出口设置超限（大于 15 或小于 12）",
            2105 => "添加高速二维比较点失败，FIFO 已满",
            2106 => "高速二维比较通道超出范围（1 通道：0）",
            2107 => "高速二维比较通道没有启用",
            2108 => "二维比较器未使能",
            2109 => "二维比较输出口超出范围",
            2110 => "二维比较输出口超出范围",
            2111 => "高速二维比较缓冲区已满",
            2150 => "等间距比较超出通道数",
            2200 => "LTC 锁存通道超限（只有 2 通道）",
            2201 => "LTC 设置通用输出口超限（0~15）",
            2202 => "软锁存锁存器个数超限（0~15）",
            2203 => "锁存轴为 8 时，锁存源只支持编码器反馈位置锁存",
            2204 => "读取软锁存位置值无效",
            2205 => "软锁存轴号超限（0~15）",
            2206 => "软锁存缓冲存满",
            2207 => "锁存的滤波参数超出范围 0~64MS",
            2208 => "锁存功能未生效，可能是配置文件未配置生效",
            2209 => "原点锁存参数无效",
            2210 => "EZ 锁存参数无效",
            2300 => "CAN 状态设置模式超限（0-断开；1-连接；2-复位后自动连接）",
            2301 => "CAN 状态设置 CAN 节点超限（等于 0 或大于 8）",
            2302 => "接线盒未处于 LINK 状态",
            2400 => "设置的反向间隙补偿值小于 0",
            2401 => "读取反向间隙补偿值，保存反向间隙补偿值的地址无效",
            2500 => "主轴和从轴轴号相同冲突",
            2501 => "主轴已被占用，非空闲",
            2502 => "从轴已被占用，非空闲",
            2503 => "从轴未处于电子齿轮模式",
            2504 => "主轴已经配置为电子齿轮从轴，不允许重复配置为其它从轴的主轴",
            2505 => "从轴已经配置为电子齿轮主轴，不允许重复配置为其它从轴",
            2506 => "不支持跟随主轴的运动模式，目前支持主轴为 PMOVE 和 VMOVE 两种运动模式（内部错误码，请查看相应轴停止原因了解详情）",
            2507 => "设置同步状态超出范围（0-未同步，1-同步）",
            2508 => "设置跟随位置源错误（0-跟随主轴指令位置，1-跟随主轴编码器位置）",
            2509 => "设置电子齿轮分子为 0（不能为零，可以是正数或负数）",
            2510 => "设置电子齿轮分母小于或等于 0（正数）",
            2511 => "设置从轴跟随方向限制模式超限（0-不限制，正反方向都跟随(默认) 1- 正方向跟随，负方向不跟随 2-负方向跟随，正方向不跟随）",
            2512 => "设置从轴跟随模式超限（0-速度同步（默认） 1-位置和速度同步）",
            2513 => "从轴已经配置为电子齿轮模式，不允许再次配置",
            2514 => "设置从轴追赶目标速度小于等于 0 或大于 4M 错误",
            2515 => "设置电子齿轮缓存模式错误（0-打断 1-等待）",
            2516 => "从轴已经配置为电子齿轮从轴，不允许重复配置为其它主轴的从轴",
            2517 => "GEARINPOS 模式，初始化时主轴运动方向错误（内部错误码，请查看相应轴停止原因了解详情）",
            2518 => "从轴开始启动时主轴绝对位置错误（不在主轴运动方向上）（内部错误码，请查看相应轴停止原因了解详情）",
            2519 => "同步时主轴绝对位置错误（不在主轴运动方向上）（内部错误码，请查看相应轴停止原因了解详情）",
            2520 => "从轴开始运动位置大于同步时主轴绝对位置（内部错误码，请查看相应轴停止原因了解详情）",
            2521 => "同步时从轴绝对位置（不在从轴运动方向上）（内部错误码，请查看相应轴停止原因了解详情）",
            2522 => "从轴追赶目标速度小于同步时从轴的速度，建议调大追赶目标速度（内部错误码，请查看相应轴停止原因了解详情）",
            2523 => "从轴同步位置过小，不足以从轴从当前速度直接加速或减速至同步速度, 建议调大从轴同步位置或调大加减速度（内部错误码，请查看相应轴停止原因了解详情）>",
            2524 => "从轴开始运动时主轴未达到匀速状态,建议调大从轴启动时主轴的位置（内部错误码，请查看相应轴停止原因了解详情）",
            2525 => "GEARINPOS 模式，设置从轴的最大加速度或减速度小于等于 0",
            2526 => "GEARINPOS 实际加速度大于设置的最大加速度（内部错误码，请查看相应轴停止原因了解详情）",
            2527 => "GEARINPOS 实际减速度大于设置的最大减速度（内部错误码，请查看相应轴停止原因了解详情）",
            2528 => "主轴空闲，不处于运动中，不允许在线配置电子齿轮比参数",
            2529 => "电子齿轮已经处于脱离耦合状态，操作失败",
            2530 => "从轴追赶实际可达速度大于追赶设置的最大目标速度,且以最大追赶速度运行无法实现规定时间内达到从轴的位移，建议调大追赶目标速度或减小从轴同步位置（内部错误码，请查看相应轴停止原因了解详情）       ",
            2531 => "从轴同步速度在只有加速或减速过程也不可达速度,建议调大从轴从轴同步位置或调小齿轮比或调大从轴开始运动的主轴位置（内部错误码，请查看相应轴停止原因了解详情）",
            2532 => "二分法求取合适的可达速度，迭代次数超过限制次数也无法找到合适的速度值（内部错误码，请查看相应轴停止原因了解详情）",
            2533 => "主轴 PMOVE 目标位置小于主轴同步位置（内部错误码，请查看相应轴停止原因了解详情）",
            2534 => "主轴 PMOVE 目标位置小于从轴开始运动时的主轴位置（内部错误码，请查看相应轴停止原因了解详情）",
            2535 => "从轴追赶过程加速周期或减速周期为 0，有可能主轴同步位置和从轴开始运动时的主轴位置相隔太近（内部错误码，请查看相应轴停止原因了解详情）",
            2536 => "主轴目标速度为零（内部错误码，请查看相应轴停止原因了解详情）",
            2537 => "从轴实际可达速度大于追赶速度时，重算以追赶速度为目标速度的匀速周期数小于等于零（内部错误码，请查看相应轴停止原因了解详情）",
            2538 => "反转禁止仅对模数轴有效，若禁止反转，而从轴不是模数轴则报错",
            2539 => "GEARINPOS 位置同步模式不支持在线变倍率",
            2540 => "GEARINPOS 主轴位移与规划结果不一致",
            2541 => "GEARINPOS 变倍率失败，输入主轴和从轴不属于主从轴关系",
            2542 => "上一次变倍率尚未处理完成，禁止再次触发变倍率",
            2543 => "从轴起始反向运动方向模式错误(1~4)",
            2544 => "从轴起始反向运动加速度为零",
            2545 => "回读主轴位置源设置错误：主轴轴号与设置主轴号不匹配",
            2546 => "电子齿轮从轴未处于使能状态，建立主从轴齿轮关系失败",
            2547 => "设置从轴的加速度小于等于 0",
            2548 => "设置从轴的减速度小于等于 0",
            2549 => "设置从轴的 JERK 小于 0",
            2550 => "设置的电子齿轮主轴与当前执行齿轮运动的主轴不匹配，执行电子齿轮失败",
            2551 => "EXECUTE 执行位超范围报错",
            2552 => "GEARINPOS 设置追赶阶段 X 轴或 Y 轴的位移量等于零",
            2553 => "主轴正向运动，从轴启动追赶时主轴位移小于等于 0 错误",
            2554 => "主轴正向运动，从轴同步位置小于等于从轴当前位置",
            2555 => "主轴正向运动，主轴同步位置小于等于主轴当前位置",
            2556 => "主轴正向运动，主轴同步位置小于等于从轴启动时主轴的位置",
            2557 => "主轴负向运动，从轴启动追赶时主轴位移大于等于 0 错误",
            2558 => "主轴负向运动，从轴同步位置大于等于从轴当前位置",
            2559 => "主轴负向运动，主轴同步位置大于等于主轴当前位置",
            2560 => "主轴负向运动，主轴同步位置大于等于从轴启动时主轴的位置",
            2600 => "凸轮轴未使能",
            2601 => "轴已经处于凸轮模式",
            2602 => "没进到凸轮模式",
            2603 => "主轴超出范围",
            2604 => "从轴超出范围",
            2605 => "主从轴同轴",
            2606 => "没有配置主轴",
            2607 => "添加的凸轮数据个数超出范围",
            2608 => "插入的凸轮数据有错误",
            2609 => "插入的凸轮数据表已满",
            2610 => "添加 CAM TABLE 时 BLOCKNUM 等于 0",
            2611 => "凸轮表编号超出允许范围",
            2612 => "凸轮表挺杆编号超出允许范围",
            2613 => "挺杆点列表已空，删除凸轮表挺杆点失败",
            2614 => "挺杆点列表已满，添加凸轮表挺杆点失败2615 挺杆点列表找不到指定挺杆点信息(挺杆列表为空或者找不到匹配的挺杆编号)，读取挺杆点信息失败",
            2616 => "凸轮表凸轮点编号超出允许范围",
            2617 => "凸轮点列表找不到指定凸轮点信息(凸轮点列表为空或者找不到匹配的凸轮点编号)，读取指定凸轮点信息失败",
            2618 => "主轴位置小于 0，写凸轮信息失败",
            2619 => "从轴位置小于 0，写凸轮信息失败",
            2620 => "从轴速度小于 0，写凸轮信息失败",
            2621 => "从轴加速度小于 0，写凸轮信息失败",
            2622 => "挺杆正向经过模式设置超范围(0~3)",
            2623 => "挺杆负向经过模式设置超范围(0~3)",
            2624 => "挺杆的主轴位置小于 0，添加或写挺杆信息失败",
            2625 => "凸轮点数太少或太多(小于 3 或者大于 2048)",
            2626 => "指令模块类型错误，设置模块状态失败",
            2627 => "主轴缩放比例小于等于 0，CAM_IN 模块报错",
            2628 => "主轴缩放比例等于 0，CAM_IN 模块报错",
            2629 => "启动位置模式超范围，CAM_IN 模块报错",
            2630 => "啮合动作方式超范围，CAM_IN 模块报错",
            2631 => "从轴速度小于等于 0，CAM_IN 模块报错",
            2632 => "从轴加速度小于等于 0，CAM_IN 模块报错",
            2633 => "从轴减速度小于等于 0，CAM_IN 模块报错",
            2634 => "主轴位置来源超范围，CAM_IN 模块报错",
            2635 => "交接模式超范围，CAM_IN 模块报错",
            2636 => "挺杆点主轴位置大于主轴周期位置最大值，写挺杆点信息失败",
            2637 => "挺杆点主轴位置大于主轴周期位置最大值，增加挺杆点信息失败",
            2638 => "从轴加加速度小于 0，CAM_IN 模块报错",
            2639 => "启动啮合时，主轴位置超出主轴凸轮周期的最大值范围",
            2640 => "启动啮合时，主轴位置超出主轴的模允许范围",
            2670 => "旋切编号超限，范围：[1,8]",
            2671 => "旋切轴半径小于等于 0",
            2672 => "旋切刀头数量小于等于 0",
            2673 => "旋切进给轴半径小于等于 0",
            2674 => "旋切长度小于等于 0",
            2675 => "旋切同步开始位置小于等于 0",
            2676 => "旋切同步结束位置小于等于 0",
            2677 => "旋切刀具同步位移大于材料切割长度",
            2678 => "旋切组已被占用，请使用其它旋切组编号",
            2679 => "找不到指定旋转轴的旋切组编号，旋切组未激活或旋切轴有误",
            2680 => "旋切退出曲线结束时 X 轴位移大于切割长度",
            2701 => "输入参数报错为空指针，内部使用",
            2702 => "内存分配不成功，内部使用",
            2703 => "输入的跟随序号超过最大数限制",
            2704 => "轴未处于跟随模式",
            2705 => "条件不允许退出跟随模式",
            2706 => "条件不允许进入跟随模式",
            2707 => "参数错误",
            2708 => "跟随参数必须在插补系停止的时候设置",
            2709 => "跟随不支持",
            2710 => "跟随参数必须在插补系启动之前的时候设置",
            2721 => "输入参数报错为空指针，内部使用",
            2722 => "输入的跟随类型不对",
            2723 => "输入参数有错误",
            2724 => "状态机切换不正确，可能参数未设置，或者未使能",
            2741 => "输入参数报错为空指针，内部使用",
            2742 => "如果不是主从轴关系，则不予以解除",
            2743 => "检查从轴是否已经作为主轴使用",
            2744 => "误差检测值中 DSTP_ERROR 大于 EMG_ERROR 错误",
            2745 => "轴跟随功能没启用",
            2761 => "输入参数报错为空指针，内部使用",
            2762 => "PWM 通道未使能",
            2763 => "占空比小于 0 或者大于 1",
            2764 => "跟随模式超出范围",
            2765 => "跟随通道超出范围",
            2781 => "输入参数报错为空指针，内部使用",
            2782 => "内存分配不成功",
            2783 => "输入的跟随序号超过最大数限制",
            2801 => "与 RTCP 功能互斥",
            2802 => "没有配置参数",
            2803 => "维数错误",
            2811 => "跟随功能没有开启",
            2821 => "没有配置参数",
            2822 => "设置间隔为 0",
            2823 => "未使能",
            2824 => "等间距比较超出通道数",
            2825 => "等间距比较输出口超出范围",
            3000 => "目标速度小于等于零错误",
            3001 => "点位运动位移为零或规划时运动距离为零",
            3002 => "轴状态未处于完成或空闲状态，启动点位运动无效",
            3003 => "PMOVE 规划或设置的起跳速度小于 0",
            3004 => "PMOVE 规划或设置目标速度等于 0",
            3005 => "PMOVE 规划或设置结束速度小于 0",
            3006 => "正向硬件限位触发，不允许正向启动 PMOVE",
            3007 => "负向硬件限位触发，不允许负向启动 PMOVE",
            3008 => "轴 ALM 信号有效，启动 PMOVE 失败",
            3009 => "正向软件限位触发，不允许正向启动 PMOVE",
            3010 => "负向软件限位触发，不允许负向启动 PMOVE",
            3011 => "轴处于空闲或不处于 PMOVE 模式，强行变位操作失败",
            3012 => "在线变速失败，新的目标速度小于 0",
            3013 => "设置点位起跳速度大于 4M 频率",
            3014 => "设置点位目标速度大于 4M 频率",
            3015 => "设置点位结束速度大于 4M 频率",
            3016 => "设置软启动结束速度大于 4M 频率",
            3017 => "设置软启动目标速度大于 4M 频率",
            3018 => "该轴已配置为 PWM 输出轴，PMOVE ENTER 失败，PMOVE 与 PWM 轴互斥",
            3019 => "PMOVE 运动已经结束，不能进行在线变位操作",
            3020 => "当前处于回零运动模式，不允许该操作",
            3021 => "软着陆第一段 PMOVE 结束速度为零，导致第二段 PMOVE 无法规划",
            3022 => "软着陆第二段目标位置小于第一段目标位置，导致第二段 PMOVE 反向运动，容易引起危险",
            3023 => "轴 EMG 信号有效，启动 PMOVE 失败",
            3024 => "当前运动模式不是 VMOVE 和 PMOVE，不支持在线变速操作",
            3025 => "当前运动模式不是 PMOVE，不支持同时变速和变位速操作",
            3026 => "内部规划缓冲区出错",
            3027 => "软着陆第二段方向错误",
            3028 => "软着陆中加速度或者减速度为 0",
            3029 => "当前轴运动模式为空闲时，调用 VMOVE 和 PMOVE 在线变速报错",
            3030 => "当前处于软启动或软着陆运动，PMOVE 在线变速报错",
            3031 => "当前处于软启动或软着陆运动，PMOVE 在线变位报错",
            3032 => "PMOVE 平滑时间大于 1 秒报错",
            3033 => "设置的加速时间等于 0",
            3034 => "设置的减速时间等于 0",
            3035 => "设置的加速度小于等于 0",
            3036 => "设置的减速度小于等于 0",
            3037 => "设置软启动第二段目标速度小于第一段目标速度",
            3038 => "软着陆设置的停止速度必须小于最大速度",
            3039 => "软着陆设置的停止速度必须大于 0",
            3040 => "软着陆第一段运动距离为零",
            3041 => "软启动第二段目标位置小于或等于第一段目标位置，导致第二段 PMOVE反向运动，容易引起危险",
            3042 => " 软启动第一段运动距离为零",
            3043 => " 设置的加速时间大于 100S",
            3044 => " 设置的减速时间大于 100S",
            3045 => " 设置的平滑时间大于加速或减速时间",
            3046 => " 多轴同步点位运动轴数超范围(2~12)",
            3047 => " 多轴同步点位运动轴号相同冲突错误",
            3048 => " 多轴同步点位运动,轴规划总时间为零错误",
            3049 => " 多轴同步点位运动,设置轴运动参数错误：未找到相应轴号",
            3050 => " 加/减加速度为零",
            3100 => " 正向硬件限位触发，不允许正向启动 VMOVE",
            3101 => " 负向硬件限位触发，不允许负向启动 VMOVE",
            3102 => " 轴 ALM 信号有效，启动 VMOVE 失败",
            3103 => " 正向软件限位触发，不允许正向启动 VMOVE",
            3104 => " 负向软件限位触发，不允许负向启动 VMOVE",
            3105 => " 轴 EMG 信号有效，启动 VMOVE 失败",
            3150 => " 正弦波频率限制",
            3151 => " 正弦波单周期速度限制",
            3152 => " 正弦波振幅错误",
            3153 => " 正向硬件限位触发，设置 SINE 曲线参数失败",
            3154 => " 负向硬件限位触发，设置 SINE 曲线参数失败",
            3155 => " 轴 ALM 信号有效，设置 SINE 曲线参数失败",
            3156 => " 正向软件限位触发，设置 SINE 曲线参数失败",
            3157 => " 负向软件限位触发，设置 SINE 曲线参数失败",
            3158 => " 轴 EMG 信号有效，设置 SINE 曲线参数失败",
            3159 => " 轴 DSTP 信号有效，设置 SINE 曲线参数失败",
            3200 => " 轴数超过最大轴数范围，且该轴运动模式不是手轮模式，不允许操作",
            3201 => " 该轴运动模式不是手轮模式，设置手轮编码器位置失败",
            3202 => " 手轮倍率为 0",
            3203 => " 轴处于手轮运动中，禁止编码器清零",
            3204 => " 驱动器 ALM 信号有效，手轮启动失败",
            3205 => " 轴 EMG 信号有效，手轮启动失败",
            3206 => " 轴未使能",
            3207 => " 已经处于手轮模式",
            3208 => " 总线配置状态",
            3209 => " 轴号超出范围",
            3210 => " 轴选超出范围",
            3211 => " 倍选超出范围",
            3212 => " 设置手轮编码器值为非零值",
            3300 => " 门型正在运动",
            3301 => " 轴未使能",
            3302 => " 轴正在运动",
            3303 => " 轴号超出范围",
            3304 => " 插补系超出范围",
            3305 => " 轴 ALM 信号有效",
            3306 => " 轴 EMG 信号有效",
            3307 => " 轴 DSTP 信号有效",
            3308 => " 正向硬件限位触发",
            3309 => " 负向硬件限位触发",
            3310 => " 正向软件限位触发",
            3311 => " 负向软件限位触发",
            3312 => " 第二段运动与第一段方向不一致或者第二段距离为 0，启动 M_MOVE 失败",
            3313 => " 没有开始速度规划",
            3314 => " 指令缓存正在运动中，不允许相关的操作",
            3315 => " 超过指令缓存最大限制轴数",
            3316 => " 指令缓存当前已打开",
            3317 => " 超过指令缓存组数(2 组)",
            3318 => " 指令缓存没有打开",
            3319 => " 压入的点位运动指令的轴数为 0",
            3320 => " 压入的指令类型不存在",
            3321 => " 触发条件不存在",
            3322 => " 触发的 IO 条件超过最大个数（5）限制",
            3323 => " 触发的轴条件超过最大个数（3）限制",
            3324 => " IO 口操作超过最大个数限制",
            3325 => " 指令轴没有在 OPEN 时使能",
            3326 => " 指令轴重复输入",
            3327 => " 指令 BUFFER 已满",
            3328 => " 指令 BUFFER 异常停止",
            3329 => " 设置的反馈位置误差参数错误",
            3330 => " 该模式下不允许删除指令",
            3331 => " 没有对应得删除的 ID 存在",
            3332 => " 指令缓存中的压入数据异常",
            3333 => " 指令缓存输入指令为空指针",
            3500 => " 单段插补模块已经初始化",
            3501 => " 单段插补模块内存开辟失败",
            3502 => " 单段插补模块内坐标系忙，不能清除模块",
            3503 => " 单段插补模块指针为空，不能清除模块",
            3504 => " 单段插补模块坐标系状态不为空闲，不能进行参数配置",
            3505 => " 单段插补模块坐标系号超过最大值",
            3506 => " 单段插补模块坐标系维度配置错误",
            3507 => " 单段插补模块速度规划参数配置错误",
            3508 => " 单段插补模块路径长度为 0",
            3509 => " 单段插补模块路径类型不支持",
            3510 => " 单段插补模块圆弧三点在一条直线上",
            3511 => " 单段插补模块圆弧点坐标相同",
            3512 => " 单段插补模块圆弧终点+半径模式，半径为 0 或小于两点的距离的一半",
            3513 => " 单段插补模块圆弧半径为 0",
            3514 => " 单段插补模块圆弧圈数小于 0",
            3515 => " 单段插补模块圆弧 3 维空间参数模式错误",
            3516 => " 单段插补模块圆弧终点半径方式，圆弧参数错误，可能在同一直线上",
            3517 => " 单段插补模块圆弧计算空间向量函数输入参数指针为 0",
            3518 => " 单段插补模块圆弧计算空间向量错误",
            3519 => " 单段插补模块椭圆维度错误",
            3520 => " 单段插补模块椭圆 A/B 轴长度错误",
            3521 => " 单段插补模块椭圆起点或终点不在曲线上",
            3522 => " 单段插补模块椭圆数据坐标相同",
            3523 => " 单段插补模块坐标系不处于空闲状态，不能启动插补",
            3524 => " 单段插补模块坐标系不处于完成状态，不能复位坐标系",
            3525 => " 单段插补模块圆弧圈数超出范围",
            3526 => " 单段插补交接模式设置超范围",
            3527 => " 单段插补过渡模式设置超范围",
            3528 => " 单段插补缓冲区已满",
            3529 => " 单段插补缓冲区已空",
            3530 => " 单段插补模块 FIFO 内存开辟失败",
            3531 => " 单段插补模块 FIFO 已经初始化",
            3532 => " 指针指向地址为空错误",
            3600 => " 点位运动库轴数错误",
            3601 => " 点位运动库缓冲区长度错误",
            3602 => " 点位运动库插补周期错误",
            3603 => " 点位运动库内存获取失败",
            3604 => " 点位运动库库空间释放失败",
            3605 => " 点位运动库没有初始化",
            3606 => " 点位运动库运动类型不支持",
            3607 => " 点位运动库运动缓存模式错误",
            3608 => " 点位运动库缓冲区满",
            3609 => " 点位运动库轴对象为空",
            3610 => " 点位运动库轴处于 DONE 状态，不能添加指令",
            3611 => " 点位运动库当前指令优先级较低，无法添加",
            3612 => " 点位运动库处于边界情况，无法添加指令",
            3613 => " 点位运动库执行 STOP 指令，禁止添加指令",
            3614 => " 点位运动库轴不处于 DONE 状态，无法 RESET",
            3615 => " 点位运动库叠加运动 OFF，不能执行动作",
            3616 => " PAUSE 状态时不能压入 HALT 指令",
            3617 => " 点位运动库缓冲区指令缓存模式为目标速度衔接",
            3702 => " 内存不足",
            3703 => " 源数据点数量错误",
            3704 => " 参数向量已经构建",
            3705 => " 节点向量已经构建",
            3706 => " 样条构建模式不支持",
            3707 => " 轨迹模式不支持",
            3708 => " 已达到最小控制点数量，样条构建失败",
            3709 => " 超过最大控制点数量限制，样条构建失败",
            3710 => " 已达到最大迭代次数，样条构建失败",
            3711 => " 没有开启前瞻模式",
            3712 => " PCI 数据传输数量错误",
            3713 => " PCI 数据控制点数量错误",
            3714 => " PCI 数据节点向量数据错误",
            3715 => " PCI 数据样条长度为 0",
            3716 => " PCI 数据样条维度错误",
            3717 => " 缓冲区内存不足",
            3718 => " 缓冲区链表节点中的样条指针不为空",
            3719 => " 样条轨迹禁止变倍率",
            3720 => " 样条轨迹禁止暂停",
            3721 => " 样条轨迹起点和上一个点不衔接",
            3722 => " 贝塞尔过渡参数检查，两条曲线没有公共连接点",
            3723 => " 贝塞尔过渡参数检查，三点共线",
            3724 => " 贝塞尔过渡参数检查，半径圆弧模式输入信息不正确",
            3725 => " 贝塞尔过渡参数检查，圆心圆弧模式输入信息不正确",
            3726 => " 贝塞尔过渡参数检查，不支持的输入圆类型：（可使用类型：三点圆弧，圆心半径）",
            3727 => " 贝塞尔过渡参数检查,半径圆心模式，没有输入圆弧运动方向",
            3728 => " 贝塞尔过渡参数检查,半径圆心模式，没有输入圆弧运动平面",
            3729 => " 贝塞尔过渡插补阶段，反算参数 T 出现错误",
            3730 => " 贝塞尔计算直线交点出现错误",
            4000 => " 坐标系插补有限状态不在有限状态机所列状态范围",
            4001 => " 插补坐标系处于空闲状态时，START_LIST 操作无效",
            4002 => " 插补坐标系处于空闲状态时，PAUSE_LIST 操作无效",
            4003 => " 插补坐标系处于就绪状态时，OPEN_LIST 操作无效",
            4004 => " 插补坐标系处于就绪状态时，PAUSE_LIST 操作无效",
            4005 => " 插补坐标系处于运动状态时，OPEN_LIST 操作无效",
            4006 => " 暂停或减速停，停止过程未完成，不允许调用重启运动",
            4007 => " 插补坐标系处于暂停状态时，OPEN_LIST 操作无效",
            4008 => " 插补坐标系处于空闲状态，不允许操作（添加指令）",
            4009 => " 插补坐标系处于运动状态时，不允许操作插补模式",
            4010 => " 插补坐标系处于运动状态时，不允许操作设置参数",
            4011 => " 插补坐标系处于运动状态时，不允许重复启动",
            4012 => " 插补坐标系处于关闭状态时，不允许操作（添加指令）",
            4013 => " 插补坐标系处于暂停中状态时，不允许暂停",
            4014 => " 插补坐标系处于单段插补模式，OPEN_LIST 操作无效",
            4015 => "插补坐标系处于连续插补中，不能进行单段插补",
            4016 => "插补坐标系不处于允许的状态中",
            4017 => "插补坐标系处于异常状态状态，操作无效，需先清除插补系异常状态后再操作",
            5000 => "设置插补系超出最大插补系允许范围",
            5001 => "设置插补目标速度大于 4M 频率",
            5002 => "设置螺旋线封闭模式失败（模式取值只能 0 和 1）",
            5003 => "插补维数和插补轴数不匹配",
            5004 => "坐标系尚未建立，轨迹插补计算失败",
            5005 => "插补维数超出范围（大于最大轴数或小于 2）",
            5006 => "缓冲区未打开",
            5007 => "STARTLIST 失败，由于上一次设置的速度倍率为 0",
            5008 => "初始化模块，动态分配前瞻和插补 FIFO 失败",
            5009 => "在线变倍率设置的倍率超出范围值（0~2）",
            5010 => "脉冲当量小于等于 0",
            5011 => "设置的目标速度小于等于 0",
            5012 => "设置连续插补段速度比例超限（0~2）",
            5013 => "缓存区处于异常状态，不允许操作",
            5014 => "缓存区空间已满，不允许操作",
            5015 => "插补路径矢量位移为零",
            5016 => "圆弧插补三点共线，无法求取圆弧参数",
            5017 => "终点+半径圆弧插补模式，起点和终点重合错误",
            5018 => "终点+半径圆弧插补模式，半径为 0 或小于两点的距离的一半",
            5019 => "增强圆弧插补，半径小于等于 0",
            5020 => "增强圆弧插补，旋转角度为零或者大于 360 度",
            5021 => "终点半径的圆弧插补方式，圆弧参数错误，可能在同一直线上",
            5022 => "添加轨迹轴列表轴号存在相同轴号错误",
            5023 => "添加轨迹轴号不在 OPENLIST 轴列表内",
            5024 => "增强圆弧插补不支持前瞻模式",
            5025 => "半径+终点圆弧插补，圈数为负值暂不支持",
            5026 => "圆心+终点圆弧插补，圈数为负值，暂不支持同心圆插补",
            5027 => "仅支持 T 形速度规划模式，设置速度插补模式有误，不支持变速",
            5028 => "由于变倍率引起的暂停或减速停，停止过程未完成，不允许调用变倍率",
            5029 => "上一次变倍率未处理完，不允许再次调用变倍率",
            5030 => "当前段处于减速阶段，不允许调用变倍率操作",
            5031 => "轨迹暂停后，存在点位运动轴未恢复至初始位置情况报错",
            5032 => "坐标系不处于暂停状态，不允许调用暂停返回运动",
            5033 => "上一次变倍率当前段变速未处理完，不允许再次调用变倍率",
            5034 => "在线变倍率未处理完，不允许调用轨迹暂停命令",
            5035 => "运动模式错误，轨迹暂停后恢复初始位置运动失败",
            5036 => "设置切向跟随时，被跟随的轨迹模式错误（模式仅支持圆弧和椭圆）",
            5037 => "设置切向跟随时，被跟随轴角度当量小于 0",
            5038 => "设置切向跟随时，跟随坐标系处于运动中，不允许设置切向跟随",
            5039 => "设置切向跟随时，跟随轴处于运动中",
            5040 => "解除切向跟随时报错，该轴处于运动中，不允许解除跟随功能",
            5041 => "解除切向跟随时，该轴不处于切向跟随模式，解除报错",
            5042 => "读取切向跟随参数失败，该轴不处于切向跟随模式或已被解除切向跟随",
            5043 => "该版本固件连续轨迹功能模块禁止，不支持连续轨迹功能",
            5044 => "运动中或暂停时禁止设置前瞻参数",
            5045 => "刀向跟随量设置值为 0",
            5046 => "插补坐标系不处于运动状态时，不允许操作在线变倍率",
            5047 => "平面圆弧插补前两轴或者空间圆弧插补前三个轴不在主轴范围内",
            5048 => "圆弧插补参数错误",
            5049 => "当前段尚未规划，不响应在线变倍率请求",
            5050 => "插补系运动重启未完成，不响应当次在线变倍率功能",
            5051 => "连续轨迹控制节点 IO 编号超出范围：0-本地 IO 1~8-扩展 IO",
            5052 => "设置单轴最大插补速度小于等于零错误",
            5053 => "设置单轴最大插补速度大于 4M",
            5054 => "圆心+角度圆弧插补参数无效错误",
            5055 => "直线插补在线变位置时，配置的轴参数不对",
            5100 => "速度规划函数出错",
            5101 => "圆弧限速速度小于等于 0",
            5102 => "设置规划参数错误，起始或结束速度小于 0，或者目标速度小于等于 0，或者加速度小于等于 0",
            5103 => "设置的单轴最大速度小于等于 0",
            5104 => "设置单段插补位移长度小于或等于 0",
            5105 => "设置的加速时间等于 0",
            5106 => "设置的减速时间等于 0",
            5107 => "置的前瞻加速度等于 0",
            5108 => "设置的最大加速度等于 0",
            5109 => "设置的平滑停止时间等于 0",
            5110 => "设置速度规划模式超限（0-T 形,1-S 形）",
            5111 => "设置的平滑时间大于 1 秒",
            5112 => "规划起始速度小于 0",
            5113 => "规划目标速度小于等于 0",
            5114 => "规划结束速度小于 0",
            5115 => "当前段剩余周转期不足以支持当前段变速",
            5116 => "当前段处于结束或者空闲阶段不支持当前段变速",
            5117 => "当前段速度规划模式错误，不支持当前段变速",
            5118 => "当前段新目标速度达不到，不支持当前段变速",
            5119 => "当前段剩余距离不足，不支持当前段变速",
            5120 => "设置的加速度等于 0",
            5121 => "设置的减速度等于 0",
            5122 => "设置的加速时间超出范围",
            5123 => "设置的减速时间超出范围",
            5124 => "规划起始速度超出范围",
            5125 => "规划目标速度超出范围",
            5126 => "规划结束速度超出范围",
            5127 => "坐标系暂停过程，插补轴点位运动操作类型超出范围（0~3）",
            5128 => "设置的 S 段时间大于加速或减速时间",
            5129 => "点胶位置超出当前段总长度，获取规划时间失败",
            5130 => "前瞻模式，用户自定义点胶位置超出当前段总长度，超出的点胶分配至下一段插入的圆弧轨迹",
            5200 => "设置插补维数超出范围（大于最大轴数）",
            5201 => "径+终点圆弧插补模式，半径为零",
            5202 => "不支持该圆弧插补模式，模式超限",
            5203 => "半径+终点圆弧插补模式，弦长大于直径错误（终点和起点的距离大于直径）",
            5204 => "3 维空间圆弧插补圆弧参数模式错误（模式为终点+半径模式）",
            5205 => "计算空间圆弧的转换矩阵，输入参数地址无效",
            5206 => "计算空间圆弧的转换矩阵，单位向量计算结果有误",
            5207 => "椭圆插补，长半轴或端半轴长度小于 0",
            5208 => "起点不在椭圆上",
            5209 => "终点不在椭圆上",
            5210 => "圆弧圆心终点模式，圆心坐标与起点相同",
            5211 => "连续轨迹直线段和圆弧自动分段段距小于等于 0",
            5212 => "连续轨迹直线段和圆弧自动分段未使能",
            5213 => "连续轨迹直线段和圆弧自动分段缓存已满",
            5214 => "连续轨迹类型错误，目前仅支持直线段和圆弧自动分段",
            5215 => "连续轨迹直线段和圆弧自动分段段数大于缓存剩余空间",
            5216 => "自动分段点胶或者用户自定义批量点胶位置，IO 号配置超出允许范围(0~15)",
            5217 => "自动分段点胶或者用户自定义批量点胶位置，IO 控制模式超出允许范围(0~4,6)",
            5218 => "不支持的插补模式，模式超限",
            5300 => "LIST 已经打开",
            5301 => "缓冲区未打开，关闭缓冲区操作无效",
            5302 => "圆弧插补获取插补平面时，插补轴数小于 2 错误",
            5303 => "圆弧插补获取插补平面时，插补轴数与插补轴列表维数不一致",
            5304 => "圆弧插补获取插补平面时，插补轴不在插补轴列表内",
            5305 => "设置环形缓冲区状态不在有限状态范围以内",
            5306 => "设置引起 RINGBUFFER 停止源错误（0-减速停引起，1-暂停引起）",
            5307 => "设置环形缓冲区异常状态错误（0-正常，1-减速停，2-急停）",
            5308 => "插补系号或者 IO 索引号超出范围",
            5309 => "插补轴正向硬件限位触发，OPENLIST 失败",
            5310 => "插补轴负向硬件限位触发，OPENLIST 失败",
            5311 => "插补轴轴 ALM 信号有效，OPENLIST 失败",
            5312 => "插补轴正向软件限位触发，OPENLIST 失败",
            5313 => "插补轴负向软件限位触发，OPENLIST 失败",
            5314 => "插补轴 EMG 信号有效，OPENLIST 失败",
            5315 => "工件坐标系超出范围",
            5316 => "旋转加速度或最大速度小于等于 0",
            5317 => "读取插补系工件坐标系号和使能报错，未使能或工件坐标系号为空",
            5318 => "插补轴正向硬限位有效，无法启动单段圆弧插补",
            5319 => "插补轴负向硬限位有效，无法启动单段圆弧插补",
            5320 => "插补轴正向软限位有效，无法启动单段圆弧插补",
            5321 => "插补轴负向软限位有效，无法启动单段圆弧插补",
            5322 => "插补轴正向硬限位有效，无法启动单段直线插补",
            5323 => "插补轴负向硬限位有效，无法启动单段直线插补",
            5324 => "插补轴正向软限位有效，无法启动单段直线插补",
            5325 => "插补轴负向软限位有效，无法启动单段直线插补",
            5350 => "工件坐标系超出范围",
            5351 => "旋转加速度或最大速度小于等于 0",
            5352 => "读取插补系工件坐标系号和使能报错，未使能或工件坐标系号为空",
            5353 => "开启五轴功能，OPEN LIST 维度需要为 5",
            5354 => "开启五轴功能，不能设置轮廓误差",
            5355 => "开启五轴功能，不能设置轮廓误差",
            5356 => "错误的五轴机器类型",
            5357 => "传递了空参数指针",
            5358 => "插补坐标系忙，不能改变功能",
            5359 => "插补器下标错误",
            5360 => "工件歪斜设置值错误，角度大于等于 360",
            5361 => "五轴插补系超出限制范围",
            5400 => "轴组编号超出有效值允许的范围",
            5401 => "连接组编号超出有效值允许的范围",
            5402 => "支持最大连接组数已满，不能再绑定主从关系",
            5403 => "主从轴轴号相同，不能再绑定主从关系",
            5404 => "多组主从轴组之间轴号冲突，不能再绑定主从关系",
            5405 => "未找到与指定主轴绑定的从轴",
            5406 => "轴组未使能",
            5407 => "轴组已使能或处于运动中",
            6000 => "模块初始化错误",
            6001 => "不支持",
            6002 => "参数错误",
            6003 => " 缓存空",
            6004 => " 缓存满",
            6005 => " 错误索引",
            6006 => " 缓存段无效",
            6010 => " 插补系号错误",
            6011 => " 插补系没有打开",
            6012 => " 插补系已经打开",
            6013 => " 插补系已经关闭",
            6014 => " 插补系不能暂停",
            6015 => " 插补系正在运行",
            6016 => " 插补系正在暂停",
            6020 => " 插补 IO 缓冲区已满",
            6021 => " 插补段已被中断使用",
            6022 => " 该模式下不能设置该功能",
            6023 => " 运动中不运行更改参数",
            6024 => " 参数不在有效范围",
            6025 => " 主要的 LIST 没有初始化",
            6026 => " 另外一个 LIST 已经启动",
            6027 => " 主要 LIST 没有启动",
            6028 => " 强制变位段号不匹配",
            6030 => " 插补维数超限",
            6031 => " 轴数不在有效范围",
            6032 => " 插补轴号一样的",
            6033 => " 轴不在 OPEN 时的列表中",
            6034 => " 轴映射表为空",
            6035 => " 映射轴错误",
            6036 => " 映射轴忙",
            6037 => " 轴的使能信号关闭，不能启动",
            6038 => " 轴软件限位信号有效",
            6039 => " 轴硬件限位信号有效",
            6040 => " 轴减速停止信号有效",
            6041 => " 轴急停信号有效",
            6042 => " 轴报警信号有效",
            6043 => " 轴已经被插补系占用",
            6044 => " 轴可能被移位且未回位",
            6045 => " 轴没有用 PMOVE 移动过，不支持回位操作",
            6050 => " 半径为 0 或小于两点的距离的一半",
            6051 => " 半径方式起点和终点重合",
            6052 => " 圆弧轴不在 XYZ 里面",
            6053 => " 圆弧三点在一条直线上",
            6054 => " 圆弧圈数小于 0",
            6055 => " 圆弧圈数超出范围",
            6056 => " 样条曲线的起点位置错误，不与实际启动时刻位置一致",
            6060 => " S 曲线加减速模式，平滑时间为零出错",
            6061 => " 起跳速度小于零",
            6062 => " 最大速度小于等于零",
            6063 => " 终点速度小于零",
            6064 => " 规划长度小于等于零",
            6065 => " 最小匀速时间小于零",
            6066 => " 规划模式非 T 型非 S 型",
            6067 => " 加速度小于等于零",
            6068 => " 减速度小于等于零",
            6069 => " 规划长度小于等于零",
            6070 => " 参数变量空指针",
            6071 => " 参数变量 2 空指针",
            7002 => " 奇异点，无法到达",
            7003 => " 输入建模参数报错",
            7004 => " 输入运动范围无法到达",
            7010 => " 通用参数错误",
            7011 => " 机械臂未配置",
            7012 => " 机械臂用户坐标系未配置",
            7013 => " 机械臂工具坐标系未配置",
            7014 => " 用户坐标系建立失败",
            7015 => " 工具坐标系建立失败",
            7016 => " 机械被使能关闭",
            7017 => " 机械臂类型错误",
            7018 => " 机械臂序号错误",
            7019 => " 机械臂用户坐标系错误",
            7020 => " 机械臂工具坐标系错误",
            7021 => " 臂型错误",
            7022 => " 关节数量错误",
            7023 => " 关节映射错误",
            7024 => " 结构参数错误",
            7025 => " 超出工作空间",
            7026 => " 关节限位触发",
            7027 => " 关节限速触发",
            7028 => " 关节限加速度触发",
            7029 => " 关节限速触发",
            7030 => " 关节限加速度触发",
            7031 => " 机械臂处于奇异点",
            7032 => " 雅克比行列式值为 0",
            10000 => "总线报错",
            10001 => "总线连接的从站数量超过最大允许的从站数",
            10002 => "总线轴映射关系错误",
            10003 => "从站节点地址不存在",
            10004 => "总线轴号不存在",
            10005 => "输入的总线轴号错误",
            10006 => "总线 IO 口号不存在",
            10007 => "总线函数中输入的指针为空",
            10008 => "总线配置文件中的从站类型错误",
            10009 => "ETHERCAT 从站的函数输入参数无效",
            10010 => "CANOPEN 从站的函数输入参数无效",
            10011 => "总线函数操作 SDO 时输入参数无效",
            10012 => "总线输入的端口号无效",
            10013 => "总线未做映射配置",
            10014 => "CANOPEN 总线超过最大允许从站数",
            10015 => "从站超过最大允许从站数",
            10016 => "主站序号输入错误",
            10017 => "总线输入文件大小超过最大限制",
            10018 => "总线输入文件为空文件",
            10019 => "总线输入文件格式错误",
            10020 => "总线映射文件信息错误",
            10021 => "总线配置 ENI 文件错误",
            10022 => "总线轴运行模式错误",
            10023 => "总线类型输入错误",
            10024 => "总线运行 PP 模式错误",
            10025 => "总线 PDO 输入参数错误,长度类型超过 2 或者等于 0",
            10026 => "总线周期参数错误",
            10027 => "总线 PDO 缓存满",
            10028 => "运动中不允许扫描",
            10029 => "运动中不允许设置周期",
            10030 => "运动中不允许下载 ENI 文件",
            10031 => "运动中不允许下载配置文件",
            10032 => "总线错误不能运动",
            10033 => "PP 运动非 ETHERCAT 轴",
            10034 => "轴未使能",
            10035 => "轴已经使能",
            10036 => "轴不能使能",
            10037 => "转矩控制下转矩值与运动方向不匹配",
            10038 => "超出总线扩展模拟量通道数",
            10039 => "总线 IO 口号不存在",
            11000 => "SDO 报错，需要加上后面的 SDO 具体错误码",
            12000 => "回零高速对象 0X6099 01 的 SDO 报错码偏移值，加上 SDO 错误码",
            13000 => "回零低速 0X6099 02 的 SDO 报错码偏移值，加上 SDO 错误码",
            14000 => "回零加速度 0X609A 00 的 SDO 报错码偏移值，加上 SDO 错误码",
            15000 => "回零偏移 0X607C 00 的 SDO 报错码偏移值，加上 SDO 错误码",
            16000 => "回零模式 0X6098 00 的 SDO 报错码偏移值，加上 SDO 错误码",
            _ => "错误码未定义",


            #endregion
        };
    }
}
